Repository navigation
fix(settings): shortcut recorder stops on an outside click or window blur (#1272) - #1308
Merged
Merged
Conversation
…lur (#1272) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…dow blur (#1272) Recording captured every key until Escape or a finished chord, so clicking the Settings search box and typing 't' silently bound 'T' to the command. It now ends on a mousedown outside the recorder button or a window blur, like HotkeyInput and MouseButtonInput. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ing; release edges pinned - B: grabbing the 134-row list's scrollbar ended recording (the mousedown targets the scroller, outside every recorder button), leaving the next chord live. A mousedown whose target IS the list scroller is exempt; clicks on rows still end recording. - A/C: tests pin the recorder button's own toggle and the capture-phase release past a control that stops propagation (both surviving mutants). - The comment no longer claims blur matches HotkeyInput (it is stricter). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Juliusolsson05
added a commit
that referenced
this pull request
Sep 25, 2026
…ing, not its gaps The scroller is also the mousedown target for its own 8 px flex gaps between category blocks, and a click there left recording armed. Only a press past the scroller's client box (its scrollbar) is exempt now. Tests pin the scrollbar, the gap and a row click. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Owner
Author
|
Round 2 disposition (final round), head 5077e3a
No round 3 per §7.3. The PR merges on a green gate that includes current main. 🤖 Generated with Claude Code |
Juliusolsson05
added a commit
that referenced
this pull request
Sep 25, 2026
Owner
Author
|
Gate check before merge: head 🤖 Generated with Claude Code |
Juliusolsson05
added a commit
that referenced
this pull request
Sep 25, 2026
…dicts, #1316 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #1272.
Found by the Stage 3 C4 hunt. Plan:
docs/plans/2026-09-25-shortcut-recorder-release.md(first commit).Why
While recording a command shortcut, a capture-phase window listener swallows every key. It released only on Escape or a finished chord. So clicking the Settings search box and typing
tsilently savedTas that command's shortcut.What merges
HotkeyInputandMouseButtonInput. Ending on blur is stricter thanHotkeyInput, which only clears held modifiers, because a recording left armed across an app switch is how a stray key got saved.onScrollbar). A click in the scroller's own 8 px gaps between category blocks, or on a row, still ends the recording (review B, round 2).Tests
CommandKeybindingsRow.capture.renderer.test.tsxrenders the real component with the real store. It covers:t(red on main);Every mutation reviewers listed dies.
npx tsc -bis clean.🤖 Generated with Claude Code